package com.haixiaoke.saas.bill.service;

import com.haixiaoke.saas.bill.domain.ProprietorBill;
import com.haixiaoke.saas.common.weChat.domain.ParseParam;

import java.util.List;


/**
 * 业主账单Service接口
 *
 * @author qixi
 * @date 2024-05-28
 */
public interface IProprietorBillService {
    /**
     * 查询业主账单
     *
     * @param proprietorBillId 业主账单主键
     * @return 业主账单
     */
    ProprietorBill selectProprietorBillByProprietorBillId(String proprietorBillId);

    /**
     * 查询业主账单列表
     *
     * @param proprietorBill 业主账单
     * @return 业主账单集合
     */
    List<ProprietorBill> selectProprietorBillList(ProprietorBill proprietorBill);

    /**
     * 新增业主账单
     *
     * @param proprietorBill 业主账单
     * @return 结果
     */
    int insertProprietorBill(ProprietorBill proprietorBill);

    /**
     * 修改业主账单
     *
     * @param proprietorBill 业主账单
     * @return 结果
     */
    int updateProprietorBill(ProprietorBill proprietorBill);

    /**
     * 批量删除业主账单
     *
     * @param proprietorBillIds 需要删除的业主账单主键集合
     * @return 结果
     */
    int deleteProprietorBillByProprietorBillIds(String[] proprietorBillIds);

    /**
     * 删除业主账单信息
     *
     * @param proprietorBillId 业主账单主键
     * @return 结果
     */
    int deleteProprietorBillByProprietorBillId(String proprietorBillId);


    /**
     * 新增房产业主账单
     */

    ProprietorBill insertProprietorBillByHouse(String houseId);

    /**
     * 线下支付
     */
    int offlinePayment(ProprietorBill proprietorBill);

    void proprietorBillOvertimeTask();

    /**
     * 批量更新业主账单
     */
    void updateProprietorBillBatch(List<ProprietorBill> proprietorBills);

    void payCallbackBill(ParseParam parseParam);

    List<ProprietorBill> selectProprietorBillByHouseIds(String[] houseIds);
}
